package com.storm.lib.util;


import org.apache.poi.hssf.usermodel.HSSFCell;

import com.storm.lib.exception.InvalidParamException;


/**
 * 
 * 类功能:异常处理器
 * @author johnny
 * @version 2011-8-4
 */
public class ExceptionUtil {
	
	/**
	 * 
	 * 方法功能:代理处理异常
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param exception
	 * @throws RuntimeException
	 */
	public static void throwException(RuntimeException exception) throws RuntimeException{
		throw exception;
	}

	/**
	 * 
	 * 方法功能:代理处理异常
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param exception
	 */
	public static void processException(Exception exception){
		processPrintException(exception);
//		if(SystemType.sendException()){
//			sendExceptionToScenterServer(exception);
//		}
	}

	/**
	 * 
	 * 方法功能:代理处理异常
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param exception
	 */
	public static void processPrintException(Exception exception){
//		if(SystemType.printException()){
			exception.printStackTrace();
//		}
	}
	
	/**
	 * 
	 * 方法功能:代理处理异常
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param exception
	 * @param message
	 * @throws RuntimeException
	 */
	public static void throwException(RuntimeException exception,String message) throws RuntimeException{
		throwException(exception);
	}

	/**
	 * 
	 * 方法功能:代理处理异常
	 * 更新时间:2011-8-4, 作者:johnny
	 * @throws RuntimeException
	 */
	public static void throwInvalidParamException() throws RuntimeException{
		throw new InvalidParamException();
	}

	/**
	 * 
	 * 方法功能:抛出空异常
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param obj
	 * @throws RuntimeException
	 */
	public static void checkIfNone(Object obj) throws RuntimeException{
		if(obj==null){
			throw new InvalidParamException();
		}
	}


	/**
	 * 
	 * 方法功能:代理处理异常
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param message
	 * @throws RuntimeException
	 */
	public static void throwInvalidParamException(String message) throws RuntimeException{
//		logger.debug(message);
		throw new InvalidParamException(message);
	}


	/**
	 * 
	 * 方法功能:检查空
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param obj
	 * @throws RuntimeException
	 */
	public static void checkObjectNull(Object obj) throws RuntimeException{
		if(obj==null){
			throw new InvalidParamException();
		}
	}

	/**
	 * 
	 * 方法功能:检查空和类型不匹配
	 * 更新时间:2011-8-4, 作者:johnny
	 * @param obj
	 * @param clazz
	 * @throws RuntimeException
	 */
	public static void checkObjectNullAndInstance(Object obj,Class clazz) throws RuntimeException{
		if(obj==null || (clazz.getName().equals(obj.getClass().getName())==false)){
			throw new InvalidParamException();
		}
	}

	public static boolean isBlankOrNullCell(HSSFCell cell) {
		if(cell==null || cell.getCellType()==HSSFCell.CELL_TYPE_BLANK){
			return true;
		}
		return false;
	}

}
